Mesh network topologies are used by low power wireless communication technologies to increase their coverage and flexibility. Such technologies require nodes of the mesh network to act as forwarders of packets or messages. As a result, a packet from a source may reach its destination via several other nodes that each receive and retransmit the packet.
A simple and straightforward way to perform retransmissions is for every node that receives a transmission to broadcast the packet, but with a restriction on the number of transmissions in order to avoid loops with infinite retransmissions. This technique, called flooding, is used widely in computer networking and has been proposed to support mesh networking for wireless solutions, such as for Bluetooth® Low Energy (BLE) solutions. Flooding requires no routing information or scheduling, and it is very tolerant of changes in the topology.
It is recognized herein that a drawback of flooding is that for a packet to be propagated through the network, nodes have to be awake and ready to receive and transmit. This can require a high duty cycle that drains the battery of low power devices. Another drawback is the high probability that packet collisions and losses will occur when many devices broadcast at the same time. Scheduling of transmissions can help to solve this problem, but it reduces the flexibility of the network and requires additional synchronization information to be spread and stored.
Furthermore, flooding is designed to spread information over all nodes in the network. When it is used as a means of point-to-point communication, the network quickly becomes over-utilized, since a small number of relays may be sufficient to guarantee correct reception of the information.
Routing is another way of delivering packets through multi-hop networks. Routing implies unicast transmissions between nodes along the route from source to destination. Therefore, routing requires source nodes to be able to find routes towards a destination node, to choose one of the routes according to some metrics and conditions, and to encapsulate routing information into the packet (either specifying each node along the route or using an addressing system). However, it is recognized herein that routing challenges a node's hardware in terms of memory and processing power. In order to define routes and to judge route performance, it is necessary to obtain, spread and update information about nodes across the network. This makes routing complicated, and routing is not always a practical solution for low-power mesh networks.